package paa.simulator.model;

import paa.simulator.model.distributions.ELogProbabilityDistribution;

public class ModelFactory {

	public enum ModelType {CASCADE, LINEAR, PROBABILISTIC}
	
	public Model buildModel(ModelType type, double argument) {
		switch (type) {
		case CASCADE:
			return new ContagionThreshold(argument);
		case LINEAR:
			return new LinearThresholdModel(argument);
		case PROBABILISTIC:
			return new ProbabilisticModel(new ELogProbabilityDistribution(argument));
		default:
			return new ContagionThreshold(argument);
		}
	}
}
